This invention relates generally to pen-based computer systems and more particularly to an interactive method for entry and editing of script, text and drawings in a document display.
Script refers to handwritten characters and words. Text refers to typewritten characters and words and includes binary-encoded characters such as ASCII text. Drawings refers to hand drawn sketches but can also include imported drawings originally drawn by or on a machine.
Existing pen-based systems use gestures to edit exclusively script or ASCII text (i.e., not both interchangeably or simultaneously). They are limited, moreover, to gestures that by their form, context, or location can be distinguished from the data that they act upon. For instance, free-form gestures applied to ASCII text are recognizable because the ASCII exists in what can be termed a different plane. Free form gestures applied to selected script are recognizable because pen actions following a selection are assumed to be gestures OR because writing applied to a selected area is assumed to be a gesture. Free-form gestures occurring within a gesture sensitive area of the screen are easily recognized. Otherwise, prior systems require an explicit action to initiate gesture recognition especially within script such as selection of text or scrip or keyboard or similar input of a control command. One could alternatively designate a set of unique strokes to define gesture commands, but this approach requires interpretation of all strokes during script entry which is compute-intensive and virtually precludes mixing script, ASCII text and sketches.
Editing of untranslated script in existing systems is typically restricted to opening up space between characters or words, erasing characters or words, and applying enhancements to pieces of script (e.g., underline, bold, etc.). No known prior pen-based system enables script words to be word-wrapped, let alone doing it with mixed script and ASCII text. Developers have probably been reluctant to attempt script word wrap for the following reasons:
Processing strokes consumes a lot of CPU time making it difficult to provide whole screen word wrapping reflow and display in a timely manner.
Strokes consume a lot of memory.
A word wrapping algorithm for handwritten script is unheard of, to say nothing of one that can maintain the user""s spacing of strokes (words).
A technique is not available for opening space within a line of script for the user to write additional script and automatically providing more writing space as the user writes (i.e., a xe2x80x9cmovingxe2x80x9d space).
Certain pieces of information that delimit paragraphs and preserve horizontal/vertical whitespace during word wrap must somehow exist within the script document. The common approach to adding this sort of information to a document involves explicitly delimiting paragraphs and specifying whitespace, neither of which is conducive to the free flow of thoughts while writing.
Mixing ASCII and script text with graphics requires a gesture set that functions the same with both types of text and is not confused with script writing or graphics drawing. Mixing ASCII with script text in the same edit lane is not known to have been done before, although systems are known in which a script annotation plane allows users to overlay existing ASCII documents with script comments.
ASCII text editing systems have typically been character-based, using a cursor to control positioning. Script, by its nature, makes character-based editing very difficult. A cursor is not needed with script because of the direct referencing characteristics of a pen. A system that mixes both script and ASCII text must be able to handle the character nature of ASCII as well as the free-form nature of script.
Script is composed of strokes-; pen movements captured as the stylus traces a character outline on a digitizing tablet. A script character can contain one or more strokes. Each stroke must be captured and its characteristics maintained in a stroke database. The typical method for this is called the time-order method. The time-order method has limitations, however. This method can lead to misinterpreted characters, depending on how the characters are created. Accordingly, a new approach is required which would eliminate the ordering of strokes merely by the point in time in which they are created.
Another drawback to current art for capturing pen-based stroke data input is the inability of current systems to wrap words and maintain predesignated spacing between words that have wrapped on to a subsequent line. This causes a loss of the user""s writing characteristics, resulting in material that is less readable to the person who wrote it. Accordingly, a method is required to maintain predesignated space between words after word wrapping to successive lines occurs.
A system could determine the amount of space between script words by monitoring stroke data input in real time; analyzing the data using pattern recognition techniques, and accordingly developing a method for identifying word separation space. This, however, requires complex software and hardware capability beyond that of the typical pen-based technology commercially available. Accordingly, a method is required which reliably captures word spacing without complex computer analysis of stroke data.
Bit-mapped images, such as those produced by scanners or facsimiles, also create unique problems for pen-based computers. Current pattern recognition techniques convert the bit-mapped image into ASCII text. Once in the ASCII format, however, there is no practical method of incorporating script into the converted document. The ability to combine both ASCII and script in a bit-mapped image is highly desirable. For example, revisions could simply be made on a received FAX image and xe2x80x9cFAXedxe2x80x9d back to the originator of the FAX. This method would allow revisions to be made electronically to the FAX image without requiring a hardcopy of the FAX.
Accordingly, a need remains for a better way to enter, store, manage and edit handwritten script, or preferably script and binary-encoded text, in a pen-based computer system, and moreover a need remains for a way to combine script and bit-mapped documents.
One object of the invention is to provide an improved pen-based computer system and script editing process.
Another object is to recognize glyph character clusters or units that might represent words or embedded drawings.
A related object is to ascertain word boundaries in order to perform word editing functions such as word wrap while maintaining the user""s word spacing.
Another object is to provide an intuitive interactive user interface for a pen-based computer.
A further object is to specify editing commands within freeform script/drawings such that the commands are not confused with the script/drawings and the user interface retains the look and feel of a piece of paper.
An additional object is to interpret the meaning of script/ASCII text positions within a document being written or a document that has been scanned/FAXed and provide editing features without destroying the subtle information inherent in the layout of a page of text. Yet another object is to enable a user to continually enter data into a document, including into pre-existing script or text, without having to perform explicit actions to acquire additional open (blank) writing space.
A script/binary-encoded-character processor (or simply script/text processor) preferably includes a script/ASCII text editor, support for creating drawings, and optionally an outliner. The processor also has simple page layout capabilities implemented through vertical and horizontal margin settings.
The basic script or script/text processing method can be implemented in a variety of software forms suited to different operating systems such as PenPoint from GO Corp. of Foster City, Calif., and PenWindows from Microsoft Corp. of Bellevue, Wash., or without an operating system but with similar program features for accessing and controlling hardware components. The processor can provide character/word translation into ASCII text using, e.g., GO Corp. software. A wide range of hardware configurations can be used to implement the processor of the invention.
Input to the script/text processor can take many forms: writing with a pen (stylus) on a digitizer connected to a computer; existing or stored documents; documents from character (keyboard) based word processors; FAX transmissions and scanned documents. A word processor specific program converts the character-based document to a form recognizable by the processor. The FAX contents are recognized by the script/text processor and converted to the processor document format. The same algorithm that recognizes FAX contents will recognize the contents of scanned images.
Output from the processor can likewise take many forms including: script/text documents; ASCII files; printed images; FAX transmissions.
Input/Output to the processor can be from/to a storage medium (e.g., a disk) or some sort of network connection (e.g., a LAN or telephone lines). The processor software can be implemented in a concurrent version that allows multiple computer users to interactively edit the same document.
One aspect of the invention is that an efficient stroke compression algorithm is provided, so that documents can contain many pages of untranslated script, as well as ASCII text. Since pen strokes can be captured at high resolutions (200+dots per inch), the method of compressing strokes was devised so as to retain the information needed to perform translation of script into xe2x80x9cASCIIxe2x80x9d characters. A method for converting FAX or scanned documents into the script/text document format is also described. The compression method commences with the xe2x80x9crootxe2x80x9d of each stroke, which is defined relative to the line space to which the stroke is connected. Strokes are preferably rooted in the line space where the pen first touched when the stroke was made, but in an alternative embodiment of the invention a stroke xe2x80x9ccenter of gravityxe2x80x9d (or some similar type of algorithm) is dynamically used to determine in which line a stroke should be rooted. The method also allows ascenders and descenders (e.g., tail on xe2x80x9cgxe2x80x9d) to cross over line boundaries while still remaining rooted in a home line.
Another aspect of the invention is that the script/text processor recognizes word boundaries within the script text and, preferably, can also recognize the implicit layout of text lines within a document. This aspect enables the processor to provide editing/word processing features that prior to this invention were not available for handwritten documents. It can also facilitate outlining. Additionally, because the script/text processor of the invention can manipulate words as images, script or text containing more than one language (shorthand could be considered a different language) can be edited (provided both languages use similar editing conventions, such as word wrapping forward from the right end of a line of text).
The method for managing word wrapping presents a novel solution to the current technical problems associated with determining word boundaries and managing word spacing. One aspect of the method provides a default word spacing value called a break point gap which can be assigned through a plurality of mechanisms at the outset of stroke data capture.
Another aspect of the method employs a comparative analysis of white space between points of stroke data with the default break point gap value. A third aspect employs a monitoring mechanism for maintaining word spacing regardless of whether word wrapping has occurred.
Another aspect of the invention is a method that enables the user to use a single gesture set to manipulate both script and ASCII text, and even drawings, all within a single document. Since word translation can occur in the background as the user writes, a document can contain both script and ASCII text. Or an ASCII document can be imported and edited, e.g., by addition of script.
Other pen-based systems are known to use a set of stylus gestures for editing functions. Rather than limiting gestures to editing only ASCII, or to gestures formed so as not to be construed as script (which interferes with embedding drawings in a document), however, the present invention uses a two-step interactive approach to inputting and interpreting an editing gesture. The first step is to initiate a transitory gesture mode prompt. Once that mode is initiated (and, preferably, but not essentially, a gesture prompt is displayed), a second step is to accept a following stylus movement or gesture as a command. Upon completion of the gesture, the gesture mode automatically terminates. This approach is functional for editing both script and ASCII (any binary encoded text or data), and drawings as well.
Also, rather than using compound or unique gestures (e.g., a caret, a pigtail, etc.), straightline vertical and horizontal gestures are preferred. The gesture set used in the invention is selected to implement an intuitive relationship between the gestures and the respective functions to be performed.
The gesture set is also context-sensitive as between text and graphical editing, depending on whether the stylus is in a lined writing area or an open (unlined) drawing area of the document. Furthermore, different initial pen actions can be used to obtain different gesture mode prompts. In each case, subsequent gestures initiate different functions, depending on location/context and form of gesture prompt. This allows a simple set of gestures to be used easily to perform a variety of functions. The gesture set allows quick and easy corrections of mistakes by the algorithms that recognize word boundaries and text layout.
Another aspect of the invention enables the user to enter script continually without having to explicitly request additional blank space or move existing script that is in the path of script to be entered. Alternatively, the user can select a mode to enter script without having to shift arm position. In other words, the user can continually write on a single physical line of the input device while the software keeps track of and provides new (blank) logical line spaces.
The invention also enables the user to perform simple page layout operations in order to intersperse free-form drawing areas (non-ruled blocks of lines) with text areas (ruled blocks of lines) on a document page. The processor of the invention further allows graphics images to be drawn and interspersed within line spaces among script/ASCII text. These images can xe2x80x9cword wrapxe2x80x9d along with the text in which they are imbedded.
The script/text processor""s feature set disclosed herein is tailored for he typical user. If an editing or script-entry error occurs, the user simply corrects it, using other editing functions. One can provide functionality desired by the less common user by adding self-teaching features to the algorithms. Typical users of the invention would be people who want to quickly jot down notes with/without drawings; people who need to make drawings along with descriptive text, e.g., engineers, lab workers, coaches; people who want to quickly record/revise ideas as discussions progress, e.g., students; writers that do not want to leave any trace of writing that has been revised, e.g., letter writers, confidential communications; and people who desire to represent their views of the world in a hierarchical manner through the use of an outline. The information being represented hierarchically can be script, text and/or drawings, including structured diagrams.
Another class of user is the writer who does not compose documents at the keyboard (e.g., doctors on rounds, shop-floor supervisors, executives, people who cannot or -prefer not to type). Documents will typically be composed in script and handed off to a secretary for translation/typing into ASCII text. The secretary may then download the ASCII document into the script/text processor for a round of revision by the author. Downloaded documents can be read, annotated, and edited before being electronically returned to the secretary or publisher.